#pragma once

class GEOMDBAPI GridParam 
{
public:
	Standard_Real	bigGridStepX;
	Standard_Real	bigGridStepY;
	Standard_Integer	minGridCountX;
	Standard_Integer	minGridCountY;
public:
	GridParam(){
		bigGridStepX = bigGridStepY = 100;
		minGridCountX = minGridCountY = 5;
	}
};

class CAnyView;
class GEOMDBAPI CSketchPlane
{
public:
	enum STD_SKETCH_PLANE
	{
		STD_PLANE_XOY,
		STD_PLANE_XOZ,
		STD_PLANE_YOZ
	};

	CSketchPlane(CAnyView* pView);
	virtual ~CSketchPlane(void);

	static CSketchPlane* Create(CAnyView* pView, STD_SKETCH_PLANE nPlaneType);


	void SetLocation(const gp_Pnt& position)
	{
		m_Location = position;
	}
	void SetDirection(const gp_Dir& dir)
	{
		m_Direction = dir;
	}
	const gp_Pnt& GetLocation()const
	{
		return m_Location;
	}
	const gp_Dir& GetDirection() const
	{
		return m_Direction;
	}
	gp_Ax3 GetPlane() const;
	void Update();
protected:
	gp_Pnt m_Location;
	gp_Dir m_Direction;

	GridParam m_gridParam;
	CAnyView*	m_pView;
};
